#ifndef MAPINFO_H
#define MAPINFO_H
/**
 * MapInfo 与单张地图对应
 */

#include <QPixmap>
#include <QDebug>

class MapInfo
{
public:
    // 地图名称
    QString name;
    // 地图路径
    QString path;
    // 地图数据
    QPixmap* pixmap = nullptr;
    // 原点位置（左下）
    QPointF base;
    // 地图大小
    QSizeF size;
    // 载入标志
    bool loaded = false;
    // 可见标志
    bool visible;

    // 构造函数
    MapInfo(const QString& name_, const QString& path_, const QPointF& base_, const QSizeF& size_, bool visible_) :
        name(name_), path(path_), base(base_), size(size_), visible(visible_)
    {
        tryLoad();
    }

    // 析构函数，反之内存泄漏
    ~MapInfo()
    {
        if (pixmap)
        {
            delete pixmap;
        }
    }

    // 尝试载入
    void tryLoad()
    {
        if (pixmap)
        {
            pixmap->load(path);
        }
        else
        {
            pixmap = new QPixmap(path);
        }

        // 成功判定
        loaded = not pixmap->isNull();
    }
};


#endif // MAPINFO_H
